草庐IT

文件操作 —— IO

全部标签

ruby-on-rails - 带@global gem 的 Ruby/RVM - bundle 运行失败,显示 `require' : cannot load such file — bundler (LoadError)

我学习了1个月的linux。当我尝试从MigratingfromMySQLtoPostgresonHeroku开始执行所有步骤时我遇到无法处理的错误。当我尝试从源代码安装mysqltopostgresgem时:$gitclonehttps://github.com/maxlapshin/mysql2postgres.git$cdmysql2postgres$bundleinstall$gembuildmysqltopostgres.gemspec$sudogeminstallmysqltopostgres-0.2.20.gem我在$bundleinstall上有一个错误:/home/f

ruby-on-rails - 如何解压缩包含 Rails 中的文件夹和文件的 zip 文件,同时保持目录结构

这个问题在这里已经有了答案:HowtounzipafileinRubyonRails?(4个答案)关闭6年前。我需要使用railsziprailsgem提取一个包含许多文件夹和文件的zip文件。同时保持文件和文件夹的组织方式与压缩时的方式一致。这并不像我想象的那么简单。请参阅我在下面找到的解决方案(添加以供将来引用)

ruby-on-rails - 找不到回形针文件错误

我刚刚从回形针rails插件切换到回形针gem。该项目是一个Rails2.3应用程序,我使用的是回形针2.7.2gem。我收到以下奇怪的错误:identify:unabletoopenimage`file':Nosuchfileordirectory@error/blob.c/OpenBlob/2617.identify:nodecodedelegateforthisimageformat`file'@error/constitute.c/ReadImage/544.似乎回形针正在寻找一个名为"file"的文件,但我不确定为什么。我没有更改我们之前的任何代码。它曾经有效,我所做的只是升

Ruby 操作符方法调用与普通方法调用

我想知道为什么调用操作符方法不需要点?或者更确切地说,为什么不能在没有点的情况下调用普通方法?例子Foo类def+(对象)把“这会起作用”结尾定义加(对象)把“这不会”结尾结尾f=Foo.newf+"anything"#"这行得通"fplus"anything"#NoMethodError:undefinedmethod`plus'formain:Object 最佳答案 这个问题的答案,对于几乎所有语言设计问题都是:“只是因为”。语言设计是一系列主要是主观的权衡。对于大多数主观权衡,问题的唯一正确答案就是“因为马茨这么说”。当然还有

ruby - 如何简洁地将文本附加到文件

代替写作File.open("foo.txt","w"){|f|f.write("foo")}我们可以这样写File.write("foo.txt","foo")有没有更简单的方法来写这个?File.open("foo.txt","a"){|f|f.write("foo")} 最佳答案 这已经得到了很深入的回答:canyoucreate/write/appendastringtoafileinasinglelineinRubyFile.write('some-file.txt','hereissometext',File.size(

ruby - ruby 对象模型的良好解释——主要是 'classes are objects'?

正在研究ruby对象模型,有一些疑问。我理解对象只存储实例变量,方法存储在对象引用的类中的想法。我也理解“self”的概念——它是什么,它如何变化等等。但是,我不明白“类是对象”这一概念。哪里有好的、直观的解释吗?(顺便说一句:我正在使用RubyObjectModelandMetaprogramming和MetaprogrammingRuby作为我的两个资源。如果有人可以提出其他建议,那将会很有帮助。)谢谢。 最佳答案 顾名思义,类就是对象。具体来说,它们是Class类的实例,它本身是Module类的子类,而后者又是Object的子

ruby - Rspec——需要 stub File.open 在另一个文件中被调用

在我的测试中,我使用一些参数初始化了一个名为Package的新类。在这个类的初始化中,我打开了一个文件,该文件在我的远程机器上可用,但在本地通常不存在。我想知道如何在我的测试中stub该方法。我正在使用rspec和mocha。我试过类似的东西:File.stubs(:open).with(:file).returns(File.open("#{package_root}/test_files/test.yml"))在我的测试中初始化Package之前,我有这一行。我遇到了这个错误:unexpectedinvocation:File.open('package/test_files/te

ruby-on-rails - 在 Ruby 中打开 .doc 文件

我可以打开.doc文件并使用Ruby获取该文件的内容吗? 最佳答案 如果你只需要纯文本内容,你可能想看看Yomu.它是一个gem,充当ApacheTIKA的包装器,它支持多种文档格式,包括以下内容:MicrosoftOfficeOLE2和OfficeOpenXML格式(.doc、.docx、.xls、.xlsx、.ppt、.pptx)OpenOffice.orgOpenDocument格式(.odt、.ods、.odp)AppleiWorks格式富文本格式(.rtf)可移植文档格式(.pdf)

Ruby:作为数组元素的方法——它们是如何工作的?

这可能不是您应该在家里尝试的东西,但出于某种原因,我尝试在Ruby中创建一组方法。我首先定义了两种方法。irb(main):001:0>deftest1irb(main):002:1>puts"test!"irb(main):003:1>end=>nilirb(main):004:0>deftest2irb(main):005:1>puts"test2!"irb(main):006:1>end=>nil当您尝试将其放入实际数组时会发生奇怪的事情。它似乎运行这两种方法。irb(main):007:0>array=[test1,test2]test!test2!=>[nil,nil]之后,

ruby - 使用 template.erb 创建文件

我是ruby​​和chef的新手,我想知道是否有办法使用模板创建文件?我试着搜索它,但找不到太多东西。我尝试创建一个黑名单文件并通过Chef将一些正则表达式插入其中。所以我想添加属性并使用template.erb在运行chef时创建文件。有什么提示、指点吗? 最佳答案 Chef有一个名为template的特殊资源,从模板创建文件。您需要将您的模板放在templates/default目录下的cookbook中,然后在您的Recipe中使用它,并提供变量。cookbooks/my_cookbook/templates/default/